<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    //forEach 迭代（遍历）数组
    var arr = [1, 2, 3];
    var sum = 0;
    const res = arr.forEach(function (value, index, array) {
        console.log('每一个数组元素' + value);
        console.log('每一个数组元素的索引' + index);
        console.log('数组本身' + array);
        sum += value
    })
    console.log('和', sum);


    // 该方法还可以有第二个参数，用来绑定回调函数内部this变量（前提是回调函数不能是箭头函数，因为箭头函数没有this）：
    let arr2 = [1, 2, 3, 4, 5]
    let arr3 = [9, 8, 7, 6, 5]
    arr2.forEach(function (item, index, arr) {
        console.log(this[index])  //  9 8 7 6 5
    }, arr3)

    //注意：
    // forEach 方法不会改变原数组，也没有返回值；
    // forEach无法使用 break，continue 跳出循环，使用 return 时，效果和在 for 循环中使用 continue 一致；
    // forEach 方法无法遍历对象，仅适用于数组的遍历。
</script>

</html>